package main

import "fmt"

/**
Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据，key 类似于索引，指向数据的值。
Map 是一种集合，所以我们可以像迭代数组和切片那样迭代它。不过，Map 是无序的，我们无法决定它的返回顺序，这是因为 Map 是使用 hash 表来实现的。
声明变量，默认 map 是 nil
var map_variable map[key_data_type]value_data_type

使用 make 函数
map_variable := make(map[key_data_type]value_data_type)
*/
func main() {
	var map1 map[string]string
	fmt.Println(map1)
	fmt.Println(map1 == nil)
	// 未初始化的map不能放键值对
	map1 = make(map[string]string)
	map1["name"] = "zhangsan"
	map1["age"] = "nine"
	fmt.Println(map1)
	fmt.Println(map1["name"])

	// 使用 make 函数
	m1 := make(map[string]string)
	// 长度为 0 的 map
	m2 := make(map[string]string, 0)
	fmt.Println(m1)
	fmt.Println(m2)
	// 声明变量，默认 map 是 nil
	// var m map[keyType]valueType
	// 长度为 0 的 map
	// var m map[keyType]valueType{}

	//可以直接创建一个 map 并且指定一些最初的值：
	m3 := map[string]int32{
		"zhangsan": 3,
		"lisi":     4,
	}
	fmt.Println(m3)
}
